{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from nelson_siegel_svensson.calibrate import calibrate_ns_ols, errorfn_ns_ols\n",
    "from matplotlib import pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "t = np.array([0.0, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0])\n",
    "y = np.array([0.01, 0.011, 0.013, 0.016, 0.019, 0.021, 0.026, 0.03, 0.035, 0.037, 0.038, 0.04])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAD8CAYAAAB3u9PLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAE41JREFUeJzt3X+MXedd5/H3Z2dqpwo0Kc4UVbZTB2ypclMUYHBZKUXQKJGzKjgVFjjbpV4pwqBiiVWFhEEqHkdCIggIQo0KKQm4EcWpAtmOVHUNqxTtFi1ej1uXxI0C02yq2C3N5AdpDWqDN1/+uM8kN7cTzx17Zu7cO++XdDTnPOc55z6PTnw/uc/5lapCkqT/MOgGSJLWBgNBkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEmAgSJKa8UE3YCmuueaa2rZt26CbIUlD5dSpU89W1cRi9YYqELZt28bMzMygmyFJQyXJV/qp55CRJAkwECRJjYEgSQIMBElSYyBIkoA+AyHJ7iRPJJlNcmiB9RuTPNjWn0iyrWf9tUnOJ/mVfvcpSWqmplblYxYNhCRjwD3ArcBO4PYkO3uq3QG8UFXbgbuBu3rW/x7wmSXuU5IEcOTIqnxMP78QdgGzVfVkVb0EHAP29NTZAxxt8w8BNyUJQJLbgP8HnFniPiVJq6ifQNgMPN21fLaVLVinqi4ALwKbknwX8KtAb7z1s08AkhxIMpNkZm5uro/mStIImJqCpDPBq/MrOHy00ieVp4C7q+r8pe6gqu6tqsmqmpyYWPTOa0kaDVNTUNWZ4NX5FQyEfh5dcQ7Y2rW8pZUtVOdsknHgKuA54F3A3iS/DVwNvJzkW8CpPvYpSVpF/QTCSWBHkuvofGnvA/5zT51pYD/wf4C9wCNVVcC75yskmQLOV9VHWmgstk9JEsDhw6vyMYsGQlVdSHIQOA6MAfdX1ZkkdwIzVTUN3Ac8kGQWeJ7OF/yS93mZfZGk0bRKl52m5senhsDk5GT5tFNJWpokp6pqcrF63qksSQIMBElSYyBIkgADQZLUGAiSRtcqXZ0zKgwESaNrlR4KNyoMBEkSYCBIGjUDeCjcqPDGNEmjK3n14XDrmDemSZKWxECQNLpW6aFwo8JAkPRaozTWPkp9WQUGgqTX8lLNdctAkCQBBoIk8FJNAV52KqmXl2qOHC87lSQtiYEg6bW8VHPdMhAkvZbnDdYtA0GSBBgIkqTGQJAkAQaCJKkxECRJQJ+BkGR3kieSzCY5tMD6jUkebOtPJNnWynclOd2mLyZ5X9c2TyV5tK3zbjMNN6/M0QhYNBCSjAH3ALcCO4Hbk+zsqXYH8EJVbQfuBu5q5Y8Bk1V1A7Ab+KMk413b/URV3dDPHXTSmuYD4TQC+vmFsAuYraonq+ol4Biwp6fOHuBom38IuClJqupfq+pCK78C8H54SVqj+gmEzcDTXctnW9mCdVoAvAhsAkjyriRngEeBX+wKiAL+KsmpJAde78OTHEgyk2Rmbm6unz5Jq8MHwmnErPhJ5ao6UVXvAH4E+LUkV7RVN1bVD9EZivqlJD/2OtvfW1WTVTU5MTGx0s2V+jc11XkI3PyD4ObnDQQNqX4C4RywtWt5SytbsE47R3AV8Fx3hap6HDgPXN+Wz7W/zwAP0xmakiQNSD+BcBLYkeS6JBuAfcB0T51pYH+b3ws8UlXVthkHSPI24O3AU0muTPLdrfxK4BY6J6Cl4eQD4TQCxherUFUXkhwEjgNjwP1VdSbJncBMVU0D9wEPJJkFnqcTGgA3AoeS/BvwMvDBqno2yfcBD6cz9joOfKKq/sdyd05aNQ4TaQT4ghxJGnG+IEeStCQGgiQJMBAkSY2BIEkCDARJUmMgSJIAA0GS1BgIkiTAQJAkNQaCJAkwECRJjYEgSQIMBElSYyBIkgADQZLUGAiSJMBAkCQ1BoIkCTAQJEmNgSBJAgwESVJjIEiSAANBktT0FQhJdid5IslskkMLrN+Y5MG2/kSSba18V5LTbfpikvf1u09J0upaNBCSjAH3ALcCO4Hbk+zsqXYH8EJVbQfuBu5q5Y8Bk1V1A7Ab+KMk433uU6NuamrQLZDUpZ9fCLuA2ap6sqpeAo4Be3rq7AGOtvmHgJuSpKr+taoutPIrgFrCPjXqjhwZdAskdeknEDYDT3ctn21lC9ZpAfAisAkgybuSnAEeBX6xre9nn5KkVbTiJ5Wr6kRVvQP4EeDXklyxlO2THEgyk2Rmbm5uZRqp1TM1BUlnglfnHT6SBq6fQDgHbO1a3tLKFqyTZBy4Cniuu0JVPQ6cB67vc5/z291bVZNVNTkxMdFHc7WmTU1BVWeCV+cNBGng+gmEk8COJNcl2QDsA6Z76kwD+9v8XuCRqqq2zThAkrcBbwee6nOfkqRVNL5Yhaq6kOQgcBwYA+6vqjNJ7gRmqmoauA94IMks8DydL3iAG4FDSf4NeBn4YFU9C7DQPpe5b1rrDh8edAskdUnN/3QfApOTkzUzMzPoZkjSUElyqqomF6vnncqSJMBAkCQ1BoIkCTAQJEmNgSBJAgwESVJjIEiSAANBktQYCJIkwECQJDUGgiQJMBAkSY2BIEkCDARJUmMgSJIAA0GS1BgIkiTAQJAkNQbCMJqaGnQLJI0gA2EYHTky6BZIGkEGgiQJMBCGx9QUJJ0JXp13+EjSMklVDboNfZucnKyZmZlBN2PwEhii4yZpsJKcqqrJxer5C0GSBPQZCEl2J3kiyWySQwus35jkwbb+RJJtrfzmJKeSPNr+vqdrm79p+zzdprcsV6dG3uHDg26BpBE0vliFJGPAPcDNwFngZJLpqvpSV7U7gBeqanuSfcBdwM8CzwI/WVVfTXI9cBzY3LXd+6vKMaCl8ryBpBXQzy+EXcBsVT1ZVS8Bx4A9PXX2AEfb/EPATUlSVV+oqq+28jPAG5NsXI6GS5KWVz+BsBl4umv5LK/9v/zX1KmqC8CLwKaeOj8NfL6qvt1V9idtuOjDyfzlM5KkQViVk8pJ3kFnGOkXuorfX1XvBN7dpp97nW0PJJlJMjM3N7fyjZWkdaqfQDgHbO1a3tLKFqyTZBy4CniuLW8BHgY+UFVfnt+gqs61v98EPkFnaOo7VNW9VTVZVZMTExP99EmSdAn6CYSTwI4k1yXZAOwDpnvqTAP72/xe4JGqqiRXA58GDlXV385XTjKe5Jo2/wbgvcBjl9cVSdLlWDQQ2jmBg3SuEHoc+GRVnUlyZ5KfatXuAzYlmQU+BMxfmnoQ2A78Rs/lpRuB40n+HjhN5xfGx5azY5KkpfFOZUkacd6pLElaEgNBkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEmAgSJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWoMBEkSYCBIkhoDQZIEGAhry9TUoFsgaR0zENaSI0cG3QJJ65iBIEkCDITBm5qCpDPBq/MOH0laZamqQbehb5OTkzUzMzPoZqycBIboeEgaDklOVdXkYvX8hSBJAvoMhCS7kzyRZDbJoQXWb0zyYFt/Ism2Vn5zklNJHm1/39O1zQ+38tkkf5DMj5msY4cPD7oFktaxRQMhyRhwD3ArsBO4PcnOnmp3AC9U1XbgbuCuVv4s8JNV9U5gP/BA1zYfBX4e2NGm3ZfRj9HgeQNJA9TPL4RdwGxVPVlVLwHHgD09dfYAR9v8Q8BNSVJVX6iqr7byM8Ab26+JtwJvqqq/q85JjI8Dt112byRJl6yfQNgMPN21fLaVLVinqi4ALwKbeur8NPD5qvp2q392kX1KklbR+Gp8SJJ30BlGuuUStj0AHAC49tprl7llkqR5/fxCOAds7Vre0soWrJNkHLgKeK4tbwEeBj5QVV/uqr9lkX0CUFX3VtVkVU1OTEz00VxJ0qXoJxBOAjuSXJdkA7APmO6pM03npDHAXuCRqqokVwOfBg5V1d/OV66qrwHfSPKj7eqiDwCfusy+SJIuw6KB0M4JHASOA48Dn6yqM0nuTPJTrdp9wKYks8CHgPlLUw8C24HfSHK6TW9p6z4I/DEwC3wZ+MxydUqStHTeqbzSpqa8nFTSQHmn8lrhE0wlDQkDQZIEGAgrwyeYShpCnkNYaT7BVNKAeQ5BkrQkBsJK8wmmkoaEgbDSPG8gaUgYCJIkwECQJDUGgiQJMBAkSY2BIEkCDARJUmMgSJIAA0GS1BgIkiTAQJAkNQaCJAkwEC6dzyiSNGIMhEvlqzEljRgDQZIEGAhL46sxJY0wX6F5qXw1pqQh4Ss0JUlL0lcgJNmd5Ikks0kOLbB+Y5IH2/oTSba18k1JPpvkfJKP9GzzN22fp9v0luXo0Krx1ZiSRsz4YhWSjAH3ADcDZ4GTSaar6ktd1e4AXqiq7Un2AXcBPwt8C/gwcH2ber2/qtbIGNASed5A0ojp5xfCLmC2qp6sqpeAY8Cenjp7gKNt/iHgpiSpqn+pqs/RCQZJ0hrWTyBsBp7uWj7byhasU1UXgBeBTX3s+0/acNGHk/lLdyRJgzDIk8rvr6p3Au9u088tVCnJgSQzSWbm5uZWtYGStJ70EwjngK1dy1ta2YJ1kowDVwHPXWynVXWu/f0m8Ak6Q1ML1bu3qiaranJiYqKP5kqSLkU/gXAS2JHkuiQbgH3AdE+daWB/m98LPFIXucEhyXiSa9r8G4D3Ao8ttfGSpOWz6FVGVXUhyUHgODAG3F9VZ5LcCcxU1TRwH/BAklngeTqhAUCSp4A3ARuS3AbcAnwFON7CYAz4n8DHlrVnkqQl8U5lSRpx3qksSVoSA0GSBBgIkqTGQJAkAQaCJKkxEHr50DpJ65SB0Mt3JUtapwwESRJgIHT4rmRJ8k7l7+C7kiWNGO9UliQtiYHQy3clS1qnDIRenjeQtE4ZCJIkwECQJDUGgiQJMBAkSY2BIEkC1nsgeEWRJL1ifQeCD7KTpFes70CQJL1i/QWCD7KTpAWt74fb+SA7SeuAD7eTJC1JX4GQZHeSJ5LMJjm0wPqNSR5s608k2dbKNyX5bJLzST7Ss80PJ3m0bfMHyfwYziryQXaS9IpFAyHJGHAPcCuwE7g9yc6eancAL1TVduBu4K5W/i3gw8CvLLDrjwI/D+xo0+5L6UDfFjpH4HkDSXpFP78QdgGzVfVkVb0EHAP29NTZAxxt8w8BNyVJVf1LVX2OTjC8IslbgTdV1d9V5yTGx4HbLqcji/ISU0m6qH4CYTPwdNfy2Va2YJ2qugC8CGxaZJ9nF9mnJGkVrfmTykkOJJlJMjM3N7e0jb3EVJL61k8gnAO2di1vaWUL1kkyDlwFPLfIPrcssk8AqureqpqsqsmJiYk+mttlaqpzWen8paXz8waCJH2HfgLhJLAjyXVJNgD7gOmeOtPA/ja/F3ikLnKDQ1V9DfhGkh9tVxd9APjUklsvSVo244tVqKoLSQ4Cx4Ex4P6qOpPkTmCmqqaB+4AHkswCz9MJDQCSPAW8CdiQ5Dbglqr6EvBB4E+BNwKfadPK8RJTSbqo9X2nsiStA96pLElaEgNBkgQYCJKkxkCQJAEGgiSpGaqrjJLMAV+5xM2vAZ5dxuYM0qj0ZVT6AfZlrRqVvlxuP95WVYve2TtUgXA5ksz0c9nVMBiVvoxKP8C+rFWj0pfV6odDRpIkwECQJDXrKRDuHXQDltGo9GVU+gH2Za0alb6sSj/WzTkESdLFradfCJKkixj5QEiyO8kTSWaTHBp0ey5HkqeSPJrkdJKhespfkvuTPJPksa6y70ny10n+sf198yDb2K/X6ctUknPt2JxO8p8G2cZ+JNma5LNJvpTkTJJfbuVDd1wu0pdhPC5XJPm/Sb7Y+nKklV+X5ET7LnuwvY5geT97lIeMkowB/wDcTOc1nSeB29vjt4dOe5T4ZFUN3XXVSX4MOA98vKqub2W/DTxfVb/VwvrNVfWrg2xnP16nL1PA+ar6nUG2bSnau83fWlWfT/LdwCk67zb/rwzZcblIX36G4TsuAa6sqvNJ3gB8Dvhl4EPAX1bVsSR/CHyxqj66nJ896r8QdgGzVfVkVb0EHAP2DLhN61JV/S8678rotgc42uaP0vkHvOa9Tl+GTlV9rao+3+a/CTxO593mQ3dcLtKXoVMd59viG9pUwHuAh1r5ihyXUQ+EzcDTXctnGdL/SJoC/irJqSQHBt2YZfC97e15AP8EfO8gG7MMDib5+zaktOaHWbol2Qb8IHCCIT8uPX2BITwuScaSnAaeAf4a+DLwz1V1oVVZke+yUQ+EUXNjVf0QcCvwS23oYiS0V64O8/jlR4HvB24Avgb87mCb078k3wX8BfDfquob3euG7bgs0JehPC5V9f+r6gY675vfBbx9NT531APhHLC1a3lLKxtKVXWu/X0GeJjOfyjD7Ott7Hd+DPiZAbfnklXV19s/4peBjzEkx6aNUf8F8GdV9ZeteCiPy0J9GdbjMq+q/hn4LPAfgauTzL/2eEW+y0Y9EE4CO9rZ+Q103vU8PeA2XZIkV7aTZSS5ErgFeOziW61508D+Nr8f+NQA23JZ5r9Am/cxBMemnby8D3i8qn6va9XQHZfX68uQHpeJJFe3+TfSuSjmcTrBsLdVW5HjMtJXGQG0y8x+HxgD7q+q3xxwky5Jku+j86sAYBz4xDD1JcmfAz9O56mNXwcOA/8d+CRwLZ2n2P5MVa35k7Wv05cfpzMsUcBTwC90jcOvSUluBP438Cjwciv+dTpj70N1XC7Sl9sZvuPyA3ROGo/R+Z/2T1bVne074BjwPcAXgP9SVd9e1s8e9UCQJPVn1IeMJEl9MhAkSYCBIElqDARJEmAgSJIaA0GSBBgIkqTGQJAkAfDvLHud3VvL3L0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(t, y, 'r+');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## OLS-Based-Calibration of Nelson-Siegel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "NelsonSiegelCurve(beta0=0.042017393764903765, beta1=-0.03182903146166806, beta2=-0.026797320316066128, tau=1.717097232403383)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "curve, status = calibrate_ns_ols(t, y, tau0=1.0)  # starting value of 1.0 for the optimization of tau\n",
    "assert status.success\n",
    "curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(nrows=1, ncols=1)\n",
    "fig.suptitle('Calibrated Nelson-Siegel Curve')\n",
    "ax.plot(t, y, 'r+');\n",
    "t2 = np.linspace(0, 30)\n",
    "ax.plot(t2, curve(t2), 'b-');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Error Function Given Tau for Nelson-Siegel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "taus = np.linspace(0.5, 6, 300)\n",
    "err = np.array([errorfn_ns_ols(tau, t, y) for tau in taus])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(nrows=1, ncols=1)\n",
    "fig.suptitle('Error function given tau')\n",
    "ax.plot(taus, err);"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
